package com.cougil.uoc.seghismed.model.ciphed;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 * Entitat de negoci que representa pròpiament a un Metge amb la seva informació xifrada
 *
 * @author Ignacio Cougil Jares
 */
@Entity
@Table(
        name="METGE_CIPHED"
)
public class MetgeCiphed extends UsuariCiphed {

	@Transient
    private byte[] especialitatCiphed;

	/*
    @Lob @Basic(fetch=LAZY)
    @Column(name="CERTIFICAT")
    */
    //private X509Certificate certificat;
    /* @ManyToMany?? */
	// llista de pacients protegida
	@Transient
	private List<PacientCiphed> llistaPacientsProtCiphed = new ArrayList<PacientCiphed>();
    
	@Transient
    private byte[] numeroColegiatCiphed;

	/**
	 * @return Retorna el valor de la propietat especialitatCiphed
	 */
	public byte[] getEspecialitatCiphed() {
		return this.especialitatCiphed;
	}
	/**
	 * @return Retorna el valor de la propietat llistaPacientsProt
	 */
	public List<PacientCiphed> getLlistaPacientsProt() {
		return this.llistaPacientsProtCiphed;
	}
	/**
	 * @return Retorna el valor de la propietat numeroColegiatCiphed
	 */
	public byte[] getNumeroColegiatCiphed() {
		return this.numeroColegiatCiphed;
	}
	/**
	 * @param Estableix especialitatCiphed com a valor de la propietat especialitatCiphed
	 */
	public void setEspecialitatCiphed(byte[] especialitatCiphed) {
		this.especialitatCiphed = especialitatCiphed;
	}
	/**
	 * @param Estableix llistaPacientsProt com a valor de la propietat llistaPacientsProt
	 */
	public void setLlistaPacientsProt(List<PacientCiphed> llistaPacientsProt) {
		this.llistaPacientsProtCiphed = llistaPacientsProt;
	}
	/**
	 * @param Estableix numeroColegiatCiphed com a valor de la propietat numeroColegiatCiphed
	 */
	public void setNumeroColegiatCiphed(byte[] numeroColegiatCiphed) {
		this.numeroColegiatCiphed = numeroColegiatCiphed;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
			.appendSuper(super.toString())
			.append("numeroColegiatCiphed", this.numeroColegiatCiphed)
			.append("especialitatCiphed", this.especialitatCiphed)
			.append("llistaPacientsProt",
				this.llistaPacientsProtCiphed)
			.toString();
	}

}

